跳到主要内容

运行时资源替换(Runtime Asset Swapping)

概览

在 Unreal 中,Referenced 资源会映射为 Unreal 对象:

  • URiveImageAsset
  • URiveFontAsset

加载方式

.riv 包含 Referenced 资源时:

  • 插件按 asset ID 跟踪
  • 导入时在 URiveFile 旁生成对应资源对象
  • 运行时通过类型化 API 注入字节数据

图片:

  • LoadTexture(UTexture2D*)
  • LoadImageBytes(const TArray<uint8>&)

字体:

  • LoadFontFace(UFontFace*)
  • LoadFontBytes(const TArray<uint8>&)

推荐流程

  1. 在 Rive Editor 把需要外置的资源设为 Referenced
  2. 导入 .riv 到 Unreal
  3. 在 Content Browser 找到生成对象(通常 AssetName-AssetId
  4. 在 Blueprint/C++ 持有这些对象引用
  5. 播放前或播放中调用加载函数

C++ 头文件

#include "Rive/Assets/RiveImageAsset.h"
#include "Rive/Assets/RiveFontAsset.h"

注意事项

  • Referenced 解析基于 ID
  • 如果你做的是“按实例动态换图”,优先考虑 image data binding 路径

排障

  • 替换无效:确认是否操作了正确的 AssetName-AssetId
  • bytes 加载失败:检查格式与字节内容是否有效
  • 重新导入 .riv 后:重新确认生成对象与引用是否变化